如今的Linebot已經相當成熟了!LINE官方也釋出很多教學檔。
今天來帶你快速使用Python來串接Linebot
可以讓你客製化LineBot的對話內容
讓使用者覺得更貼心、更好用!!!
首先,先進去Line develpo官網
然後登入你的Line帳號
到以下此頁面後(一步一步慢慢來)
按Create後會出現隱私權之類的視窗,按同意就好了!
我們要關掉官方預設的歡迎語
這邊我們先建立一個config.ini的配置檔
[line-bot]
channel_access_token = 你的channel_access_token
channel_secret = 你的channel_secret
接著往下滑動後
點選issue後,會產生出一串屬於你的token
複製完請貼到config.ini裡面
之後回到Line develop網頁 點選導覽列的Basice settings
一樣滑動到底部,會看見Channel secret
一樣貼到config.ini裡面
最後應該會長成這樣
接下來我們要用Python製作客製化的對話
先建立一個app.py檔
註:app.py要跟上方config.ini放同一層資料夾唷
from __future__ import unicode_literals
import os
from flask import Flask, request, abort
from linebot import LineBotApi, WebhookHandler
from linebot.exceptions import InvalidSignatureError
from linebot.models import MessageEvent, TextMessage, TextSendMessage
import configparser
import random
app = Flask(__name__)
# LINE 聊天機器人的基本資料
config = configparser.ConfigParser()
config.read('config.ini')
line_bot_api = LineBotApi(config.get('line-bot', 'channel_access_token'))
handler = WebhookHandler(config.get('line-bot', 'channel_secret'))
# 接收 LINE 的資訊
@app.route("/callback", methods=['POST'])
def callback():
signature = request.headers['X-Line-Signature']
body = request.get_data(as_text=True)
app.logger.info("Request body: " + body)
try:
print(body, signature)
handler.handle(body, signature)
except InvalidSignatureError:
abort(400)
return 'OK'
# 學你說話
@handler.add(MessageEvent, message=TextMessage)
def pretty_echo(event):
if event.source.user_id != "Udeadbeefdeadbeefdeadbeefdeadbeef":
# Phoebe 愛唱歌
pretty_note = '♫♪♬'
pretty_text = ''
for i in event.message.text:
pretty_text += i
pretty_text += random.choice(pretty_note)
line_bot_api.reply_message(
event.reply_token,
TextSendMessage(text=pretty_text)
)
if __name__ == "__main__":
app.run()
我們要將製作好的app.py運行起來
可以在你的終端機下 python app.py
ngrok 就是可以讓內網伺服器與外界溝通的一個服務。
也就是說
可以讓本地端對外開放server
假設你架設一個部落格,當中有許多動態動作(如新增、更新、刪除等)
這時候你可能會因為沒有固定IP而煩惱,又或者決得放到heroku很麻煩
這是就可以使用ngrok,暫時讓外部人連進你的部落格
p.s 面試挺有用的,可以短暫讓面試官看你的成品
需要詳細了解可以參考下方
ngrok 不求人:自己搭一個窮人版的 ngrok 服務
開啟你的cmd
將路徑改變成你的app.py的位置
輸入 ngrok http 5000
這時我們回到Line develop官網 ->Messaging API ->WebhookURL
有時候Verify會失敗,請多按幾次,最後會顯示
出現此頁面表示你的Linebot與python檔成功串接了!!
尋找你的LineBot測試吧!!!
參考文獻: https://ithelp.ithome.com.tw/articles/10217767
參考文獻: https://yaoandy107.github.io/line-bot-tutorial/
不好意思 我想請問一下 在終端機打python app.py這個指令 卻出現下面這情況 我該如何解決
你好~ 這看起來像是路徑上的錯誤
表示找不到app.py的檔案,所以請先確認好路徑位置
這裡提供給你以下解法
感謝回覆